package com.ckm.controller;

import com.ckm.annotation.LogInfo;
import com.ckm.entity.CourseType;
import com.ckm.entity.ResponseResult;
import com.ckm.service.CourseTypeService;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Slf4j
@LogInfo
@Validated
@RestController
@RequestMapping("courseType")
public class CourseTypeController {
    
    @Autowired
    private CourseTypeService courseTypeService;

    /**
     * 添加课程类型
     * @param courseTypeList 课程类型信息list
     * @return 成功信息
     */
    @PostMapping("addCourseType")
    public ResponseResult addCourseType(@RequestBody @Valid List<CourseType> courseTypeList) {
        courseTypeService.addCourseType(courseTypeList);
        return new ResponseResult(200,"添加成功",null);
    }

    /**
     * 更新课程类型
     * @param courseType 更新的信息
     * @return 成功信息
     */
    @PutMapping
    public ResponseResult updateCourseType(@RequestBody CourseType courseType) {
        courseTypeService.updateCourseType(courseType);
        return new ResponseResult(200,"更新成功","");
    }

    /**
     * 删除课程类型
     * @param id 课程类型Id
     * @return 成功信息
     */
    @DeleteMapping
    public ResponseResult deleteCourseType(@RequestParam(name = "id") Integer id) {
        courseTypeService.deleteCourseType(id);
        return new ResponseResult(200,"删除成功","");
    }

    /**
     * 查找课程类型信息
     * @param courseType 查找词
     * @param pageNum 页码
     * @param pageSize 页大小
     * @return 分页结果集
     */
    @PostMapping("find")
    public ResponseResult findCourseType(@RequestBody CourseType courseType, @RequestParam(name = "pageNum",defaultValue = "1") int pageNum, @RequestParam(name = "pageSize", defaultValue = "10") int pageSize) {
        return new ResponseResult(200,"查找完毕",courseTypeService.getCourseTypePage(courseType,pageNum,pageSize));
    }
}
